import axios from 'axios'
import { Error, Load } from '../utils/element.config.js'

const request = axios.create({
  baseURL: 'http://www.phpweb.com/api',
  timeout: 15000,
  transformRequest: [function (data) {
    // 将数据转换为表单数据
    let ret = ''
    for (let it in data) {
      /* 判断数组数据 */
      if (data[it] instanceof Array) {
        for (let i in data[it]) {
          ret += encodeURIComponent(it + '[]') + '=' + encodeURIComponent(data[it][i]) + '&'
        }
      } else {
        ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
      }
    }
    /* 处理最后一个多余的& */
    ret = ret.substr(0, ret.lastIndexOf("&"));
    return ret;
  }]
})
request.interceptors.request.use(
  config => {
    /* 开启loading加载 */
    Load();
    if (sessionStorage.token) {
      config.headers.Authorization = sessionStorage.token;
    }
    return config
  }
)
/** 设置数据响应的拦截器 **/
request.interceptors.response.use(
  /* 对响应的数据进行处理, 获取到需要用的数据 */
  response => {
    let data = response.data
    /* 停止加载动画 设置延时器1s */
    window.setTimeout(function(){
      Load().close();
    }, 1000);
    /* 如果没有获取到 返回状态码 那么就是服务器错误 */
    if( !data.code ){
      return Error("服务器错误");
    }
    return data
  }
)

export default request
